ããã³ããšã³ãã®ããã©ãŒãã³ã¹ãããã€ã¹ã®ããããªãŒå¯¿åœã«äžãã圱é¿ãæ¢ããŸããWeb APIã§æ¶è²»é»åãæž¬å®ããã¢ããªã±ãŒã·ã§ã³ããšãã«ã®ãŒå¹çã®ããã«æé©åããæ¹æ³ãåŠã³ãäžçäžã®ãŠãŒã¶ãŒã«å©çããããããŸãã
ããã³ããšã³ãããã©ãŒãã³ã¹ãšããããªãŒå¯¿åœïŒæç¶å¯èœãªãŠã§ãã®ããã®æ¶è²»é»åã®æž¬å®ãšæé©å
ã¢ãã€ã«ããã€ã¹ãžã®äŸåããŸããŸãé«ãŸããç°å¢ãžã®åœ±é¿ã«å¯Ÿããæèãé«ãŸãäžçã«ãããŠããŠã§ãã¢ããªã±ãŒã·ã§ã³ã«ããç®ã«èŠããªãé»åæ¶è²»ã¯ãããã³ããšã³ãéçºè ã«ãšã£ãŠéèŠãªæžå¿µäºé ãšããŠæµ®äžããŠããŸããç§ãã¡ã¯é床ãå¿çæ§ãèŠèŠçãªå¿ å®åºŠã«æ³šç®ããã¡ã§ãããç§ãã¡ãäœæãããã®ã®ãšãã«ã®ãŒãããããªã³ãã¯ããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãããã€ã¹ã®å¯¿åœãããã«ã¯å°çç°å¢ã®æç¶å¯èœæ§ã«å€§ããªåœ±é¿ãäžããŸãããã®å æ¬çãªã¬ã€ãã§ã¯ãããã³ããšã³ãã¢ããªã±ãŒã·ã§ã³ã®æ¶è²»é»åãçè§£ããæšæž¬ããæé©åããæ¹æ³ãæãäžããéçºè ãã©ãã«ããŠã誰ã«ãšã£ãŠãããå¹ççã§æç¶å¯èœãªãŠã§ããæ§ç¯ã§ããããã«ããŸãã
éããªãæ¶èïŒãªãé»åæ¶è²»ãäžççã«éèŠãªã®ã
å é»ãžã®ã¢ã¯ã»ã¹ãéãããé éå°ã®ãŠãŒã¶ãŒããã¹ããŒããã©ã³ã§ç·æ¥ã®ã¿ã¹ã¯ãå®äºããããšããŠãããšãããæ³åããŠã¿ãŠãã ããããããã¯ãèŠç¥ãã¬éœåžãç§»åããæ è¡è ããå°å³ãéä¿¡ã®ããã«ããã€ã¹ã®ããããªãŒã«é Œã£ãŠãããšãããããããã®ãŠãŒã¶ãŒãäžçäžã®ç¡æ°ã®äººã ã«ãšã£ãŠãé»åæ¶è²»ã®æ¿ãããŠã§ãã¢ããªã±ãŒã·ã§ã³ã¯åãªãäžäŸ¿ãã§ã¯ãªããé倧ãªéå£ãšãªãåŸãŸããéå¹çãªããã³ããšã³ãã³ãŒãã®çµæã¯ãäžæçãªé床äœäžãã¯ããã«è¶ ããŠåºãããŸãïŒ
- ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã®äœäžïŒæ¥éã«æ¶èããããããªãŒã¯ãäžå®ãäžæºããããŠä¿¡é Œæ§ã®äœäžã«ã€ãªãããŸãããŠãŒã¶ãŒã¯ããããšãã«ã®ãŒå¹çã®é«ãä»£æ¿ææ®µãæ±ããŠãããªãã®ã¢ããªã±ãŒã·ã§ã³ããŠã§ããµã€ããæŸæ£ãããããããŸããã
- ããã€ã¹ã®å¯¿åœïŒé »ç¹ãªå é»ãµã€ã¯ã«ãšé»åéçŽçãªã¿ã¹ã¯ã«ãã£ãŠçºçããé床ã®ç±ã¯ãããããªãŒã®å£åãå éãããããã€ã¹ã®å¯¿åœãçž®ããé»å廿£ç©ã®å¢å ã«ã€ãªãããŸããããã¯ãããã€ã¹ã®äº€æã容æã§ãªãçµæžåã®ãŠãŒã¶ãŒã«äžåè¡¡ãªåœ±é¿ãäžããŸãã
- ç°å¢ãžã®åœ±é¿ïŒãŠãŒã¶ãŒã®ããã€ã¹ãã¢ããªã±ãŒã·ã§ã³ããã¹ãããããŒã¿ã»ã³ã¿ãŒã§æ¶è²»ãããé»åã®1ã¯ããããšã«ããšãã«ã®ãŒéèŠã«è²¢ç®ããŠããŸãããã®éèŠã¯ãã°ãã°åçäžå¯èœãªãšãã«ã®ãŒæºã«ãã£ãŠæºããããççŽ æåºéãå¢å ãããæ°åå€åãæªåãããŸããæç¶å¯èœãªãŠã§ãéçºã¯ãé埳çãã€ããžãã¹äžã®å¿ é äºé ã«ãªãã€ã€ãããŸãã
- ã¢ã¯ã»ã·ããªãã£ãšå æ¬æ§ïŒäžçã®å€ãã®å°åã§äžè¬çãªãå€ããæ§èœãäœãããŸãã¯å®äŸ¡ãªããã€ã¹ã䜿çšããŠãããŠãŒã¶ãŒã¯ããªãœãŒã¹éçŽçãªãŠã§ãã¢ããªã±ãŒã·ã§ã³ã«ãã£ãŠäžé£ãåããªåœ±é¿ãåããŸããæ¶è²»é»åãæé©åããããšã¯ãããªãã®ã¢ããªã±ãŒã·ã§ã³ãããåºãäžçã®ãªãŒãã£ãšã³ã¹ã«ã¢ã¯ã»ã¹å¯èœã§ããããšãä¿èšŒããã®ã«åœ¹ç«ã¡ãŸãã
ããã³ããšã³ãéçºè ãšããŠãç§ãã¡ã¯ããžã¿ã«äœéšã圢äœãæåç·ã«ããŸããç§ãã¡ã®ä»äºãé»åã«äžãã圱é¿ãçè§£ãã軜æžããããšã¯ãåãªãæé©åã¿ã¹ã¯ã§ã¯ãªãããŠãŒã¶ãŒãšå°çã«å¯Ÿãã責任ã§ãã
ãŠã§ãã¢ããªã±ãŒã·ã§ã³ã«ãããæ¶è²»é»åã®çè§£ïŒãšãã«ã®ãŒã®å€§é£æŒ¢
ãã®æ žå¿ã«ãããŠããŠã§ãã¢ããªã±ãŒã·ã§ã³ã¯ããã€ã¹ã®ããŒããŠã§ã¢ã³ã³ããŒãã³ãã«äœæ¥ãå®è¡ãããããšã§é»åãæ¶è²»ããŸããäœæ¥ãå€ããã°å€ãã»ã©ãé»åãå€ããªããŸããé»åæ¶è²»ã«å€§ããå¯äžããäž»èŠãªã³ã³ããŒãã³ãã¯æ¬¡ã®ãšããã§ãïŒ
CPU䜿çšçïŒé è³ã®ä»äºé
äžå€®åŠçè£ çœ®ïŒCPUïŒã¯ããã°ãã°æãé»åãæ¶è²»ããã³ã³ããŒãã³ãã§ãããã®æ¶è²»é»åã¯ãå®è¡ããèšç®ã®è€éããšéã«æ¯äŸããŠå¢å ããŸãããŠã§ãã¢ããªã±ãŒã·ã§ã³ã§ã¯ãããã«ã¯ä»¥äžãå«ãŸããŸãïŒ
- JavaScriptã®å®è¡ïŒè€éãªJavaScriptã³ãŒãã®è§£æãã³ã³ãã€ã«ãå®è¡ãéãèšç®ãå€§èŠæš¡ãªããŒã¿æäœãåºç¯ãªã¯ã©ã€ã¢ã³ããµã€ãã¬ã³ããªã³ã°ã¯ãCPUãå¿ããããç¶ããŸãã
- ã¬ã€ã¢ãŠããšã¬ã³ããªã³ã°ïŒããã¥ã¡ã³ããªããžã§ã¯ãã¢ãã«ïŒDOMïŒã倿Žããããã³ã«ããã©ãŠã¶ã®ã¬ã³ããªã³ã°ãšã³ãžã³ã¯ã¹ã¿ã€ã«ã®åèšç®ãèŠçŽ ã®ã¬ã€ã¢ãŠããç»é¢ã®äžéšã®åæç»ãå¿ èŠã«ãªãå ŽåããããŸããé »ç¹ã§åºç¯ãªãªãããŒãšåæç»ã¯CPUã«è² è·ããããŸãã
- ã€ãã³ãåŠçïŒå€æ°ã®ãŠãŒã¶ãŒã€ã³ã¿ã©ã¯ã·ã§ã³ïŒã¯ãªãã¯ãã¹ã¯ããŒã«ããããŒïŒã®åŠçã¯ãç¹ã«å¹ççã«ç®¡çãããŠããªãå ŽåïŒäŸïŒãããŠã³ã¹ãã¹ããããªã³ã°ãªãïŒãJavaScriptãšã¬ã³ããªã³ã°ã¿ã¹ã¯ã®é£éãåŒãèµ·ããå¯èœæ§ããããŸãã
- ããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ïŒãµãŒãã¹ã¯ãŒã«ãŒããŠã§ãã¯ãŒã«ãŒããŸãã¯ãã®ä»ã®ããã¯ã°ã©ãŠã³ãããã»ã¹ã¯ãã¡ã€ã³ã¹ã¬ããããå€ããŠããŸãããäŸç¶ãšããŠCPUãªãœãŒã¹ãå©çšããŸãã
ãããã¯ãŒã¯ã¢ã¯ãã£ããã£ïŒããŒã¿ã®æžæ
Wi-Fiãæºåž¯é»è©±ãæç·ãåããããããã¯ãŒã¯çµç±ã§ããŒã¿ãéä¿¡ããããšã¯ããšãã«ã®ãŒã倧éã«æ¶è²»ããããã»ã¹ã§ããããã€ã¹ã®ç¡ç·æ©ããªã³ã«ããŠãã¢ã¯ãã£ãã«ä¿¡å·ãéåä¿¡ããå¿ èŠããããŸãããããã¯ãŒã¯é¢é£ã®é»åæ¶è²»ã«å¯äžããèŠå ã¯æ¬¡ã®ãšããã§ãïŒ
- 倧ããªãªãœãŒã¹ãµã€ãºïŒæé©åãããŠããªãç»åãåç»ã倧ããªJavaScriptãã³ãã«ãCSSãã¡ã€ã«ã¯ã転éããããã«ããå€ãã®ããŒã¿ãå¿ èŠãšããŸãã
- é »ç¹ãªãªã¯ãšã¹ãïŒå€ãã®å°ããªããããåŠçãããŠããªããªã¯ãšã¹ãããŸãã¯çµ¶ãéãªãããŒãªã³ã°ã¯ããããã¯ãŒã¯ç¡ç·ãããé·æéã¢ã¯ãã£ããªç¶æ ã«ä¿ã¡ãŸãã
- éå¹çãªãã£ãã·ã³ã°ïŒãªãœãŒã¹ãé©åã«ãã£ãã·ã¥ãããŠããªãå Žåããããã¯ç¹°ãè¿ãããŠã³ããŒããããäžèŠãªãããã¯ãŒã¯ã¢ã¯ãã£ããã£ã«ã€ãªãããŸãã
- 壿ªãªãããã¯ãŒã¯æ¡ä»¶ïŒïŒå€ãã®å°åã§äžè¬çãªïŒäœéãŸãã¯ä¿¡é Œæ§ã®äœããããã¯ãŒã¯ã§ã¯ãããã€ã¹ã¯æ¥ç¶ã確ç«ã»ç¶æããããšããããããŒã¿ãç¹°ãè¿ãåéä¿¡ããããšããããããããããå€ãã®é»åãæ¶è²»ããå¯èœæ§ããããŸãã
GPU䜿çšçïŒèŠèŠçè² è·
ã°ã©ãã£ãã¯ã¹ããã»ãã·ã³ã°ãŠãããïŒGPUïŒã¯ãç¹ã«è€éãªã°ã©ãã£ãã¯ã¹ãã¢ãã¡ãŒã·ã§ã³ããããªåçãªã©ã®èŠèŠèŠçŽ ã®ã¬ã³ããªã³ã°ãåŠçããŸããç¹å®ã®ã°ã©ãã£ãã¯ã¹ã¿ã¹ã¯ã§ã¯CPUãããå¹ççã§ããããšãå€ãã§ãããããã§ã倧ããªé»åæ¶è²»è ãšãªãåŸãŸãïŒ
- è€éãªã¢ãã¡ãŒã·ã§ã³ïŒããŒããŠã§ã¢ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ãããCSSã®transformãšopacityã®å€æŽã¯å¹ççã§ãããã¬ã€ã¢ãŠãããã€ã³ãããããã£ã«é¢ããã¢ãã¡ãŒã·ã§ã³ã¯CPUã«ãã©ãŒã«ããã¯ããGPUã®äœæ¥ãããªã¬ãŒããŠãããé«ãé»å䜿çšã«ã€ãªããå¯èœæ§ããããŸãã
- WebGLãšCanvasïŒã²ãŒã ãããŒã¿å¯èŠåã§ããèŠãããéäžçãª2D/3Dã°ã©ãã£ãã¯ã¹ã¬ã³ããªã³ã°ã¯ãGPUã«çŽæ¥è² è·ããããŸãã
- ãããªåçïŒãããªãã¬ãŒã ã®ãã³ãŒããšã¬ã³ããªã³ã°ã¯ãäž»ã«GPUã®ã¿ã¹ã¯ã§ãã
ãã®ä»ã®èŠå
ããã³ããšã³ãã³ãŒãã«ãã£ãŠçŽæ¥å¶åŸ¡ãããããã§ã¯ãããŸããããä»ã®èŠå ãç¥èŠãããæ¶è²»é»åã«åœ±é¿ãäžããŸãïŒ
- ç»é¢ã®æããïŒãã£ã¹ãã¬ã€ã¯ãç¹ã«æããèšå®ã§ã¯äž»èŠãªé»åæ¶è²»æºã§ããéçºè ã¯ãããçŽæ¥å¶åŸ¡ããŸããããé«ã³ã³ãã©ã¹ãã§èªã¿ãããã€ã³ã¿ãŒãã§ãŒã¹ã¯ããŠãŒã¶ãŒãæåã§æãããäžããå¿ èŠæ§ãæžããããšãã§ããŸãã
- ããã€ã¹ã®ããŒããŠã§ã¢ïŒããã€ã¹ã«ãã£ãŠããŒããŠã§ã¢ã®å¹çã¯ç°ãªããŸããããŒãšã³ãã®ããã€ã¹åãã«æé©åããããšã§ãããåºãäžçã®ãªãŒãã£ãšã³ã¹ã«ãšã£ãŠããè¯ãäœéšãä¿èšŒããŸãã
ãšãã«ã®ãŒãæèãããŠã§ãéçºã®å°é ïŒãªãä»ãªã®ãïŒ
ãšãã«ã®ãŒãæèãããŠã§ãéçºãžã®æ©éã¯ãããã€ãã®èŠå ãéãªã£ãŠçããŠããŸãïŒ
- æç¶å¯èœæ§ãžã®äžççãªæšé²ïŒç°å¢åé¡ãæ·±å»åããã«ã€ããäžçäžã®ç£æ¥ãèªç€Ÿã®ã«ãŒãã³ãããããªã³ãã粟æ»ããŠããŸãããŠã§ãã¢ããªã±ãŒã·ã§ã³ãå«ããœãããŠã§ã¢ã¯ããŠãŒã¶ãŒããã€ã¹ãšããŒã¿ã»ã³ã¿ãŒã®äž¡ã¬ãã«ã§ããšãã«ã®ãŒæ¶è²»ã®éèŠãªèŠå ãšããŠãŸããŸãèªèãããŠããŸãããã°ãªãŒã³ã³ã³ãã¥ãŒãã£ã³ã°ãããæç¶å¯èœãªãœãããŠã§ã¢ãšã³ãžãã¢ãªã³ã°ãã®æŠå¿µã泚ç®ãéããŠããŸãã
- ã¢ãã€ã«ããã€ã¹ã®æ®åïŒã¹ããŒããã©ã³ãã¿ãã¬ããã¯ãç¹ã«æ°èåžå Žã«ãããŠãäœååãã®äººã ã«ãšã£ãŠã€ã³ã¿ãŒãããã«ã¢ã¯ã»ã¹ããäž»èŠãªææ®µãšãªã£ãŠããŸããããããªãŒå¯¿åœã¯ããããã®ãŠãŒã¶ãŒã«ãšã£ãŠæéèŠã®é¢å¿äºã§ãã
- ãŠãŒã¶ãŒã®æåŸ ã®é«ãŸãïŒãŠãŒã¶ãŒã¯ãæ°åã§ããããªãŒãæ¶èãããªããã·ãŒã ã¬ã¹ã§é«éãªäœéšãæåŸ ããŠããŸããããã©ãŒãã³ã¹ã¯ãã¯ãé床ã ãã§ã¯ãªããæç¶æ§ãéèŠã«ãªã£ãŠããŸãã
- ãŠã§ãæ©èœã®é²æ©ïŒçŸä»£ã®ãŠã§ãã¢ããªã±ãŒã·ã§ã³ã¯ãããŸã§ä»¥äžã«æŽç·ŽãããŠããããã€ãŠã¯ãã€ãã£ãã¢ããªã«éãããŠããäœéšãæäŸã§ããããã«ãªã£ãŠããŸãã倧ããªåã«ã¯å€§ããªè²¬ä»»ã䌎ãããã倧ããªé»åæ¶è²»ã®å¯èœæ§ã䌎ããŸãã
ãã®é«ãŸãæèã¯ãããã³ããšã³ãéçºè ãèªèº«ã®æè¡ã«åãçµãæ¹æ³ãå€ãããšãã«ã®ãŒå¹çãäžæ žçãªããã©ãŒãã³ã¹ã¡ããªãã¯ãšããŠçµ±åããå¿ èŠæ§ãçããããŠããŸãã
æ¢åã®ããã³ããšã³ãããã©ãŒãã³ã¹APIïŒåºç€ã§ãããçŽæ¥çãªæž¬å®ã§ã¯ãªã
ãŠã§ããã©ãããã©ãŒã ã¯ãã¢ããªã±ãŒã·ã§ã³ããã©ãŒãã³ã¹ã®ããŸããŸãªåŽé¢ã枬å®ããããã®è±å¯ãªAPIã»ãããæäŸããŠããŸãããããã®APIã¯ã鿥çã«é»åæ¶è²»ã«å¯äžããããã«ããã¯ãç¹å®ããã®ã«éåžžã«äŸ¡å€ããããŸãããçŽæ¥çãªé»å枬å®ã«é¢ãããã®éçãçè§£ããããšãéèŠã§ãã
äž»èŠãªããã©ãŒãã³ã¹APIãšé»åãžã®é¢é£æ§ïŒ
- Navigation Timing APIïŒ (
performance.timing- ã¬ã¬ã·ãŒ,performance.getEntriesByType('navigation')- ã¢ãã³)
ãããã¯ãŒã¯ã®é å»¶ããªãã€ã¬ã¯ããDOMã®è§£æããªãœãŒã¹ã®èªã¿èŸŒã¿ãªã©ãããã¥ã¡ã³ãã®å šäœçãªèªã¿èŸŒã¿æéãæž¬å®ããŸããé·ãããã²ãŒã·ã§ã³æéã¯ãé·æéã®ãããã¯ãŒã¯ç¡ç·ã¢ã¯ãã£ããã£ãšCPUãµã€ã¯ã«ãæå³ããããšãå€ãããããã£ãŠããé«ãé»å䜿çšã瀺åããŸãã - Resource Timing APIïŒ (
performance.getEntriesByType('resource'))
åã ã®ãªãœãŒã¹ïŒç»åãã¹ã¯ãªãããã¹ã¿ã€ã«ã·ãŒãïŒã«é¢ãã詳现ãªã¿ã€ãã³ã°æ å ±ãæäŸããŸãããããã¯ãŒã¯ã®é»åæ¶è²»ã«å¯äžããã倧ãããŸãã¯èªã¿èŸŒã¿ã®é ãã¢ã»ãããç¹å®ããã®ã«åœ¹ç«ã¡ãŸãã - User Timing APIïŒ (
performance.mark(),performance.measure())
éçºè ãJavaScriptã³ãŒãå ã«ã«ã¹ã¿ã ã®ããã©ãŒãã³ã¹ããŒã¯ãšã¡ãžã£ãŒã远å ã§ããããã«ããŸããããã¯ãCPUè² è·ãé«ãå¯èœæ§ã®ããç¹å®ã®é¢æ°ãã³ã³ããŒãã³ãããããã¡ã€ãªã³ã°ããã®ã«éåžžã«äŸ¡å€ããããŸãã - Long Tasks APIïŒ (
performance.getEntriesByType('longtask'))
ãã©ãŠã¶ã®ã¡ã€ã³ã¹ã¬ããã50ããªç§ä»¥äžãããã¯ãããŠããæéãç¹å®ããŸãããã³ã°ã¿ã¹ã¯ã¯é«ãCPU䜿çšçãšå¿çæ§ã®åé¡ã«çŽæ¥çžé¢ããŠããããããã¯éèŠãªé»åæ¶è²»è ã§ãã - Paint Timing APIïŒ (
performance.getEntriesByType('paint'))
æåã®ã³ã³ãã³ããç»é¢ã«æç»ãããææã瀺ãFirst Contentful Paint (FCP)ãªã©ã®ã¡ããªã¯ã¹ãæäŸããŸããFCPã®é å»¶ã¯ãCPUãè§£æãšã¬ã³ããªã³ã°ã§å¿ãããããããã¯ãŒã¯ãé ãããšãæå³ããããšãå€ãã§ãã - Interaction to Next Paint (INP)ïŒ (Core Web Vital)
ãŠãŒã¶ãŒãããŒãžã§è¡ããã¹ãŠã®ã€ã³ã¿ã©ã¯ã·ã§ã³ã®é å»¶ãæž¬å®ããŸããé«ãINPã¯ãéåžžãéãJavaScriptãã¬ã³ããªã³ã°äœæ¥ã«ããã¡ã€ã³ã¹ã¬ããã®ç¡å¿çã瀺ããçŽæ¥çã«é«ãCPU䜿çšçãæå³ããŸãã - Layout Instability (CLS)ïŒ (Core Web Vital)
äºæããªãã¬ã€ã¢ãŠãã·ãããæž¬å®ããŸããããã¯äž»ã«UXã¡ããªãã¯ã§ãããé »ç¹ãŸãã¯å€§ããªã¬ã€ã¢ãŠãã·ããã¯ãCPUãåžžã«äœçœ®ãåèšç®ããŠã¬ã³ããªã³ã°ããŠããããšãæå³ããããå€ãã®é»åãæ¶è²»ããŸãã
ãããã®APIã¯æéãšå¿çæ§ã枬å®ããããã®å ç¢ãªããŒã«ããããæäŸããŸãããã¯ããããžã¥ãŒã«åäœã§ã®æ¶è²»é»åã®ã¡ããªãã¯ãçŽæ¥å ¬éãããã®ã§ã¯ãããŸããããã®åºå¥ã¯éåžžã«éèŠã§ãã
ã®ã£ããïŒãã©ãŠã¶ã«ãããçŽæ¥çãªããããªãŒ/é»å枬å®API
ãŠã§ãã¢ããªã±ãŒã·ã§ã³å ããçŽæ¥é»åãæž¬å®ããããšããèŠæã¯çè§£ã§ããŸãããäž»ã«ã»ãã¥ãªãã£ããã©ã€ãã·ãŒãæè¡çãªå®çŸå¯èœæ§ã®èгç¹ãã課é¡ã«æºã¡ãŠããŸãã
Battery Status APIïŒã¬ã¬ã·ãŒã§éå®çïŒ
ãã€ãŠããã€ã¹ã®ããããªãŒç¶æ
ãå£éèŠãããšãã§ããAPIãBattery Status APIã§ãnavigator.getBattery()çµç±ã§ã¢ã¯ã»ã¹ã§ããŸãããããã«ã¯ä»¥äžã®ãããªããããã£ããããŸããïŒ
chargingïŒããã€ã¹ãå é»äžãã©ããã瀺ãããŒã«å€ãchargingTimeïŒãã«å é»ãŸã§ã®æ®ãæéãdischargingTimeïŒããããªãŒã空ã«ãªããŸã§ã®æ®ãæéãlevelïŒçŸåšã®ããããªãŒå é»ã¬ãã«ïŒ0.0ãã1.0ïŒã
ãããããã®APIã¯é倧ãªãã©ã€ãã·ãŒæžå¿µã®ãããçŸä»£ã®ãã©ãŠã¶ïŒç¹ã«FirefoxãšChromeïŒã§ã¯å€§éšåã廿¢ãŸãã¯å¶éãããŠããŸããäž»ãªåé¡ã¯ãããããªãŒã¬ãã«ãå é»ç¶æ ãæŸé»æéãçµã¿åãããããšã§ãã©ãŠã¶ãã£ã³ã¬ãŒããªã³ãã£ã³ã°ã«å¯äžããå¯èœæ§ããã£ãããšã§ãããŠã§ããµã€ãã¯ãã·ãŒã¯ã¬ããã¢ãŒãã»ãã·ã§ã³ããŸããã ããã¯ãããŒãã¯ãªã¢ããåŸã§ãããããã®åçãªå€ã芳å¯ããããšã§ãŠãŒã¶ãŒãç¹å®ã§ããé倧ãªãã©ã€ãã·ãŒãªã¹ã¯ããããããŸããããŸããã¢ããªã±ãŒã·ã§ã³ããšã®é»åæ¶è²»éã§ã¯ãªããããã€ã¹å šäœã®ããããªãŒç¶æ ããæäŸããŸããã§ããã
ãŠã§ãã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠçŽæ¥çãªé»å枬å®ãé£ããçç±ïŒ
Battery Status APIã®ãã©ã€ãã·ãŒãžã®åœ±é¿ãè¶ ããŠããŠã§ãã¢ããªã±ãŒã·ã§ã³ã«è©³çްãªã¢ããªã±ãŒã·ã§ã³åºæã®æ¶è²»é»åã¡ããªã¯ã¹ãæäŸããããšã¯ãæ ¹æ¬çãªæè¡çããŒãã«ã«çŽé¢ããŠããŸãïŒ
- ã»ãã¥ãªãã£ãšãã©ã€ãã·ãŒïŒãŠã§ããµã€ãã«ããŒããŠã§ã¢ã®é»åã»ã³ãµãŒãžã®çŽæ¥ã¢ã¯ã»ã¹ãèš±å¯ãããšããŠãŒã¶ãŒã®ããã€ã¹äœ¿çšãã¿ãŒã³ã掻åããããŠä»ã®ããŒã¿ãšçžé¢ãããããšã§å Žæã«é¢ããæ©å¯æ å ±ãæŒæŽ©ããå¯èœæ§ããããŸãã
- OS/ããŒããŠã§ã¢ã®æœè±¡åïŒãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ïŒWindows, macOS, Android, iOSïŒãšåºç€ãšãªãããŒããŠã§ã¢ã¯ãåã ã®ã¢ããªã±ãŒã·ã§ã³ãããããæœè±¡åããŠãã·ã¹ãã ã¬ãã«ã§é»åã管çããŸãããã©ãŠã¶ã¯ãã®OSãµã³ãããã¯ã¹å ã§å®è¡ããããã®ãããªçã®ããŒããŠã§ã¢ããŒã¿ããŠã§ãããŒãžã«çŽæ¥å ¬éããããšã¯è€éã§ãããã»ãã¥ãªãã£ãªã¹ã¯ããããããŸãã
- ç²åºŠã®åé¡ïŒç¹å®ã®ãŠã§ãã¢ããªã±ãŒã·ã§ã³ããããã¯ãŠã§ãã¢ããªã±ãŒã·ã§ã³ã®ç¹å®ã®éšåïŒäŸïŒåäžã®JavaScript颿°ïŒã«é»åæ¶è²»ãæ£ç¢ºã«åž°å±ãããããšã¯ãéåžžã«å°é£ã§ããé»åã¯ããã©ãŠã¶èªäœããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãããã³ä»ã®å®è¡äžã®ã¢ããªã±ãŒã·ã§ã³ã«ãã£ãŠãã°ãã°åæã«äœ¿çšãããå ±æã³ã³ããŒãã³ãïŒCPUãGPUããããã¯ãŒã¯ç¡ç·ïŒã«ãã£ãŠæ¶è²»ãããŸãã
- ãã©ãŠã¶ãµã³ãããã¯ã¹ã®å¶éïŒãŠã§ããã©ãŠã¶ã¯ãã»ãã¥ãªãã£ãšå®å®æ§ã®ããã«ãŠã§ãããŒãžã®åºç€ãšãªãã·ã¹ãã ãªãœãŒã¹ãžã®ã¢ã¯ã»ã¹ãå¶éãããå®å šãªãµã³ãããã¯ã¹ãšããŠèšèšãããŠããŸããé»åã»ã³ãµãŒãžã®çŽæ¥ã¢ã¯ã»ã¹ã¯ãéåžžããã®ãµã³ãããã¯ã¹ã®ç¯å²å€ã§ãã
ãããã®å¶çŽãèãããšãçŽæ¥çãªã¢ããªã±ãŒã·ã§ã³ããšã®é»å枬å®APIãè¿ãå°æ¥ãŠã§ãéçºè ã«åºãå©çšå¯èœã«ãªãå¯èœæ§ã¯éåžžã«äœãã§ãããããã£ãŠãç§ãã¡ã®ã¢ãããŒãã¯ãçŽæ¥æž¬å®ãããçžé¢ããããã©ãŒãã³ã¹ã¡ããªã¯ã¹ã«åºã¥ãæšæž¬ãšæé©åãžãšç§»è¡ããªããã°ãªããŸããã
ã®ã£ãããåããïŒããã©ãŒãã³ã¹ã¡ããªã¯ã¹ããæ¶è²»é»åãæšæž¬ãã
ãŠã§ãã¢ããªã±ãŒã·ã§ã³ã«ãšã£ãŠçŽæ¥çãªé»å枬å®ã¯éçŸå®çã§ãããããããã³ããšã³ãéçºè ã¯éæ¥çã§ãããªãã广çãªæŠç¥ã«é Œããªããã°ãªããŸããïŒãšãã«ã®ãŒäœ¿çšéãšçžé¢ããåºç€çãªããã©ãŒãã³ã¹ã¡ããªã¯ã¹ãç¶¿å¯ã«æé©åããããšã§ãæ¶è²»é»åãæšæž¬ããããšã§ããååã¯åçŽã§ãïŒããå°ãªãäœæ¥ãè¡ãããŸãã¯ããå¹ççã«äœæ¥ãè¡ããŠã§ãã¢ããªã±ãŒã·ã§ã³ã¯ãããå°ãªãé»åãæ¶è²»ããŸãã
é»åãžã®åœ±é¿ãç£èŠããæšæž¬ããããã®äž»èŠã¡ããªã¯ã¹ïŒ
1. CPU䜿çšçïŒäžæ žãšãªãçžé¢ææš
é«ãCPU䜿çšçã¯ãæœåšçãªé»åæ¶è²»ã®æãçŽæ¥çãªææšã§ããCPUãé·æéå¿ããããããã®ã¯ãã¹ãŠãããå€ãã®é»åãæ¶è²»ããŸããCPUã¢ã¯ãã£ããã£ã¯ä»¥äžãéããŠæšæž¬ããŸãïŒ
- é·ãJavaScriptå®è¡æéïŒ
Long Tasks APIã䜿çšããŠãã¡ã€ã³ã¹ã¬ããããããã¯ããŠããã¹ã¯ãªãããç¹å®ããŸããperformance.measure()ããã©ãŠã¶ã®éçºè ããŒã«ã䜿çšããŠç¹å®ã®é¢æ°ããããã¡ã€ãªã³ã°ããCPUè² è·ã®é«ãã³ãŒããèŠã€ããŸãã - éå°ãªã¬ã³ããªã³ã°ãšã¬ã€ã¢ãŠãïŒé »ç¹ã§å€§èŠæš¡ãªãªãããŒïŒã¬ã€ã¢ãŠãã®åèšç®ïŒãšåæç»ã¯CPUè² è·ãé«ãã§ãããã©ãŠã¶éçºè ã³ã³ãœãŒã«ã®ãããã©ãŒãã³ã¹ãã¿ãã®ãããªããŒã«ã¯ãã¬ã³ããªã³ã°ã¢ã¯ãã£ããã£ãèŠèŠåã§ããŸããCumulative Layout Shift (CLS)ã¯ãã¬ã€ã¢ãŠãã®äžå®å®æ§ã®ææšã§ããããããCPUãããå€ãã®äœæ¥ãè¡ã£ãŠããããšãæå³ããŸãã
- ã¢ãã¡ãŒã·ã§ã³ãšã€ã³ã¿ã©ã¯ã·ã§ã³ïŒè€éãªã¢ãã¡ãŒã·ã§ã³ãç¹ã«ã¬ã€ã¢ãŠãããããã£ã倿Žãããã®ã¯ãCPUãå¿ èŠãšããŸããé«ãInteraction to Next Paint (INP)ã¹ã³ã¢ã¯ãCPUããŠãŒã¶ãŒå ¥åã«å¿çããã®ã«èŠåŽããŠããããšã瀺åããŠããŸãã
2. ãããã¯ãŒã¯ã¢ã¯ãã£ããã£ïŒç¡ç·ã®éèŠ
ããã€ã¹ã®ãããã¯ãŒã¯ç¡ç·ã¯ãéèŠãªé»åæ¶è²»è ã§ãããã®ã¢ã¯ãã£ãæéãšããŒã¿è»¢ééãæå°éã«æããããšã¯ãé»å䜿çšãçŽæ¥åæžããŸãããããã¯ãŒã¯ãžã®åœ±é¿ã¯ä»¥äžãéããŠæšæž¬ããŸãïŒ
- 倧ããªãªãœãŒã¹ãµã€ãºïŒ
Resource Timing APIã䜿çšããŠãããŠã³ããŒãããããã¹ãŠã®ã¢ã»ããã®ãµã€ãºãååŸããŸãããã©ãŠã¶ã®éçºããŒã«ã®ãããã¯ãŒã¯ãŠã©ãŒã¿ãŒãã©ãŒã«ãã£ãŒãã調ã¹ãŠã倧ããªãã¡ã€ã«ãèŠã€ããŸãã - éå°ãªãªã¯ãšã¹ãïŒå€æ°ã®HTTPãªã¯ãšã¹ããç¹ã«å¹æçãªãã£ãã·ã³ã°ããªããã®ã¯ãç¡ç·ãã¢ã¯ãã£ããªç¶æ ã«ä¿ã¡ãŸãã
- éå¹çãªãã£ãã·ã³ã°ïŒé©åãªHTTPãã£ãã·ã³ã°ããµãŒãã¹ã¯ãŒã«ãŒãã£ãã·ã³ã°ããªãå Žåãç¹°ãè¿ãã®ããŠã³ããŒãã匷å¶ãããŸãã
3. GPU䜿çšçïŒèŠèŠåŠçã®è² è·
ãŠã§ãAPIãä»ããŠçŽæ¥å®éåããã®ã¯é£ããã§ãããGPUã®äœæ¥ã¯èŠèŠçãªè€éããšãã¬ãŒã ã¬ãŒãã«çžé¢ããŸããGPUã¢ã¯ãã£ããã£ã¯ä»¥äžã芳å¯ããããšã§æšæž¬ããŸãïŒ
- çç±ãªãé«ãã¬ãŒã ã¬ãŒãïŒFPSïŒïŒäœãå€åããªãã®ã«åžžã«60 FPSã§ã¬ã³ããªã³ã°ããã®ã¯ç¡é§ã§ãã
- è€éãªã°ã©ãã£ãã¯ã¹/ã¢ãã¡ãŒã·ã§ã³ïŒWebGLãCanvasããŸãã¯æŽç·ŽãããCSS广ïŒè€éãªãã£ã«ã¿ãŒãã·ã£ããŠã3D倿ãªã©ïŒã®åºç¯ãªäœ¿çšã¯ãGPUã«çŽæ¥åœ±é¿ããŸãã
- ãªãŒããŒãããŒïŒä»ã®èŠçŽ ã«ãã£ãŠèŠãããèŠçŽ ãã¬ã³ããªã³ã°ããããšïŒãªãŒããŒãããŒïŒã¯ãGPUãµã€ã¯ã«ãç¡é§ã«ããŸãããã©ãŠã¶ã®éçºããŒã«ã¯ããã°ãã°ãªãŒããŒãããŒãèŠèŠåã§ããŸãã
4. ã¡ã¢ãªäœ¿çšéïŒéæ¥çã ãé¢é£ãã
ã¡ã¢ãªèªäœã¯CPUããããã¯ãŒã¯ã®ãããªäž»èŠãªé»åæ¶è²»æºã§ã¯ãããŸããããéå°ãªã¡ã¢ãªäœ¿çšéã¯ãã°ãã°CPUã¢ã¯ãã£ããã£ã®å¢å ïŒäŸïŒã¬ããŒãžã³ã¬ã¯ã·ã§ã³ãµã€ã¯ã«ãå€§èŠæš¡ããŒã¿ã»ããã®åŠçïŒãšçžé¢ããŸããã¡ã¢ãªãžã®åœ±é¿ã¯ä»¥äžãéããŠæšæž¬ããŸãïŒ
- ã¡ã¢ãªãªãŒã¯ïŒã¡ã¢ãªãªãŒã¯ã®ããé·æéå®è¡ãããã¢ããªã±ãŒã·ã§ã³ã¯ãåŸã ã«ããå€ãã®ãªãœãŒã¹ãæ¶è²»ããããé »ç¹ãªã¬ããŒãžã³ã¬ã¯ã·ã§ã³ãšæœåšçã«é«ãCPU䜿çšçã«ã€ãªãããŸãã
- 倧ããªããŒã¿æ§é ïŒå€§éã®ããŒã¿ãã¡ã¢ãªã«ä¿æãããšã鿥çã«é»åã«åœ±é¿ãäžããããã©ãŒãã³ã¹ã®ãªãŒããŒãããã«ã€ãªããå¯èœæ§ããããŸãã
ãããã®ããã©ãŒãã³ã¹ã¡ããªã¯ã¹ãç±å¿ã«ç£èŠããæé©åããããšã§ãããã³ããšã³ãéçºè ã¯çŽæ¥çãªããããªãŒAPIããªããŠãããŠã§ãã¢ããªã±ãŒã·ã§ã³ã®æ¶è²»é»åãå€§å¹ ã«åæžã§ããŸãã
ãšãã«ã®ãŒå¹çã®é«ãããã³ããšã³ãéçºã®ããã®å®è·µçæŠç¥
æ¶è²»é»åã®æé©åã¯ãããã©ãŒãã³ã¹ã«å¯Ÿããå šäœçãªã¢ãããŒããåãå ¥ããããšãæå³ããŸãããããšãã«ã®ãŒå¹çã®é«ããŠã§ãã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã®å®è¡å¯èœãªæŠç¥ã¯æ¬¡ã®ãšããã§ãïŒ
1. JavaScriptã®å®è¡ãæé©åãã
- JavaScriptã®ãã³ãã«ãµã€ãºãæå°åããïŒã¢ãžã¥ãŒã«ãã³ã³ããŒãã³ãã«å¯ŸããŠãããªãŒã·ã§ã€ãã³ã°ãã³ãŒãåå²ãé å»¶èªã¿èŸŒã¿ã䜿çšããŸããããã«å¿ èŠãªJavaScriptã®ã¿ãéä¿¡ããŸããWebpack Bundle Analyzerã®ãããªããŒã«ã¯ã倧ããªãã£ã³ã¯ãç¹å®ããã®ã«åœ¹ç«ã¡ãŸãã
- å¹ççãªã€ãã³ãåŠçïŒã¹ã¯ããŒã«ããªãµã€ãºãå ¥åãªã©ã®ã€ãã³ãã«ãããŠã³ã¹ãšã¹ããããªã³ã°ãå®è£ ããŸããããã«ãããé«ã³ã¹ããªé¢æ°åŒã³åºãã®é »åºŠãæžå°ããŸãã
- ãŠã§ãã¯ãŒã«ãŒã掻çšããïŒéãèšç®ãã¡ã€ã³ã¹ã¬ãããããŠã§ãã¯ãŒã«ãŒã«ãªãããŒãããŸããããã«ãããUIã®å¿çæ§ãä¿ããããã³ã°ã¿ã¹ã¯ãã¬ã³ããªã³ã°ããããã¯ããã®ãé²ãããšãã§ããŸãã
- ã¢ã«ãŽãªãºã ãšããŒã¿æ§é ãæé©åããïŒããŒã¿åŠçã«ã¯å¹ççãªã¢ã«ãŽãªãºã ã䜿çšããŸããäžèŠãªã«ãŒããæ·±ãDOMãã©ããŒãµã«ããŸãã¯å埩çãªèšç®ãé¿ããŸãã
- éèŠãªJavaScriptãåªå
ããïŒéèŠã§ãªãã¹ã¯ãªããã«ã¯
deferãŸãã¯async屿§ã䜿çšããŠãã¡ã€ã³ã¹ã¬ããã®ãããã¯ãé²ããŸãã
2. å¹ççãªãããã¯ãŒã¯äœ¿çš
- ã¢ã»ãããå§çž®ã»æé©åããïŒ
- ç»åïŒWebPãAVIFã®ãããªã¢ãã³ãªãã©ãŒãããã䜿çšããŸããå質ãç ç²ã«ããããšãªãç»åãç©æ¥µçã«å§çž®ããŸããã¬ã¹ãã³ã·ãç»åïŒ
srcset,sizes,pictureïŒãå®è£ ããŠãç°ãªãããã€ã¹ã«é©ãããµã€ãºã®ç»åãé ä¿¡ããŸãã - åç»ïŒãŠã§ãçšã«åç»ããšã³ã³ãŒãããã¹ããªãŒãã³ã°ã䜿çšããè€æ°ã®ãã©ãŒããããæäŸããå¿ èŠãªãã®ã ããããªããŒãããŸãã
- ããã¹ãïŒHTMLãCSSãJavaScriptãã¡ã€ã«ã«å¯ŸããŠGZIPãŸãã¯Brotliå§çž®ãæå¹ã«ãªã£ãŠããããšã確èªããŸãã
- ç»åïŒWebPãAVIFã®ãããªã¢ãã³ãªãã©ãŒãããã䜿çšããŸããå質ãç ç²ã«ããããšãªãç»åãç©æ¥µçã«å§çž®ããŸããã¬ã¹ãã³ã·ãç»åïŒ
- ãã£ãã·ã³ã°ã掻çšããïŒå
ç¢ãªHTTPãã£ãã·ã³ã°ããããŒãå®è£
ãããµãŒãã¹ã¯ãŒã«ãŒã䜿çšããŠé«åºŠãªãã£ãã·ã³ã°æŠç¥ïŒäŸïŒ
stale-while-revalidateïŒãå©çšããŠãç¹°ãè¿ãã®ãããã¯ãŒã¯ãªã¯ãšã¹ããæå°éã«æããŸãã - ãµãŒãããŒãã£ã¹ã¯ãªãããæå°åããïŒåãµãŒãããŒãã£ã¹ã¯ãªããïŒåæãåºåããœãŒã·ã£ã«ãŠã£ãžã§ããïŒã¯ããããã¯ãŒã¯ãªã¯ãšã¹ããšæœåšçãªJavaScriptå®è¡ã远å ããŸãããããã®äœ¿çšãç£æ»ããæå°éã«æããŸããã©ã€ã»ã³ã¹ãèš±ãã°ãé å»¶èªã¿èŸŒã¿ãŸãã¯ããŒã«ã«ã§ã®ãã¹ãã£ã³ã°ãæ€èšããŸãã
- PreloadãPreconnectãPrefetchãå©çšããïŒãªãœãŒã¹ãã³ãã䜿çšããŠéèŠãªãªãœãŒã¹ã®èªã¿èŸŒã¿ãæé©åããŸãããäžèŠãªãããã¯ãŒã¯ã¢ã¯ãã£ããã£ãé¿ããããã«æ éã«è¡ããŸãã
- HTTP/2ãšHTTP/3ïŒãµãŒããŒããããã®ãããã³ã«ããµããŒãããŠããããšã確èªããããå¹ççãªå€éåãšãªãŒããŒãããã®åæžãå®çŸããŸãã
- ã¢ãããã£ãããŒãã£ã³ã°ïŒã¯ã©ã€ã¢ã³ããã³ãã
Save-DataããããŒã䜿çšããŠãäœéãŸãã¯é«äŸ¡ãªãããã¯ãŒã¯äžã®ãŠãŒã¶ãŒã«ãã軜éãªäœéšãæäŸããŸãã
3. ã¹ããŒããªã¬ã³ããªã³ã°ãšã¬ã€ã¢ãŠã
- DOMã®è€éãã軜æžããïŒãããã©ããã§å°ããªDOMããªãŒã¯ããã©ãŠã¶ãã¬ã³ããªã³ã°ããã³æŽæ°ããã®ã容æãã€é«éã«ãªããCPUã®äœæ¥ãåæžããŸãã
- CSSãæé©åããïŒå¹ççãªCSSã»ã¬ã¯ã¿ãèšè¿°ããŸãã匷å¶åæã¬ã€ã¢ãŠãïŒã¹ã¿ã€ã«ã®åèšç®ããªãããŒïŒãé¿ããŸãã
- ããŒããŠã§ã¢ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ãããã¢ãã¡ãŒã·ã§ã³ïŒã¢ãã¡ãŒã·ã§ã³ã«ã¯CSSã®
transformãšopacityãåªå ããŸãããããã¯GPUã«ãªãããŒãã§ããããã§ããã¬ã€ã¢ãŠãïŒwidth,height,left,topïŒããã€ã³ãïŒbox-shadow,border-radiusïŒãããªã¬ãŒããããããã£ã®ã¢ãã¡ãŒã·ã§ã³ã¯å¯èœãªéãé¿ããŸãã - Content VisibilityãšCSS ContainmentïŒ
content-visibilityCSSããããã£ãŸãã¯containããããã£ã䜿çšããŠDOMã®äžéšãåé¢ããããé åã®ã¬ã³ããªã³ã°æŽæ°ãããŒãžå šäœã«åœ±é¿ãäžããã®ãé²ããŸãã - ç»åãšIframeãé
å»¶èªã¿èŸŒã¿ããïŒ
loading="lazy"屿§ãŸãã¯JavaScriptã®Intersection Observerã䜿çšããŠãç»åãšiframeããã¥ãŒããŒãã«å ¥ã£ããšãã«ã®ã¿èªã¿èŸŒã¿ãŸãã - é·ããªã¹ããä»®æ³åããïŒé·ãã¹ã¯ããŒã«ãªã¹ãã«ã¯ããŠã£ã³ããŠã€ã³ã°ãä»®æ³åã®ãããªæè¡ã䜿çšããŠè¡šç€ºãããŠããã¢ã€ãã ã®ã¿ãã¬ã³ããªã³ã°ããDOMèŠçŽ ãšã¬ã³ããªã³ã°äœæ¥ãåçã«åæžããŸãã
4. ããŒã¯ã¢ãŒããšã¢ã¯ã»ã·ããªãã£ãèæ ®ãã
- ããŒã¯ã¢ãŒããæäŸããïŒOLEDã¹ã¯ãªãŒã³ãæã€ããã€ã¹ã§ã¯ãé»ããã¯ã»ã«ã¯å®è³ªçã«ãªãã«ãªããããããŒã¯ã¢ãŒãã¯æ¶è²»é»åãå€§å¹ ã«åæžããŸãããŠãŒã¶ãŒã®å¥œã¿ãã·ã¹ãã èšå®ã«åºã¥ããŠãªãã·ã§ã³ã§ããŒã¯ããŒããæäŸããããšã§ãå€§å¹ ãªçãšããæåŸ ã§ããŸãã
- é«ã³ã³ãã©ã¹ããšèªã¿ãããïŒè¯å¥œãªã³ã³ãã©ã¹ãæ¯ãšèªã¿ããããã©ã³ãã¯ç®ã®ç²ãã軜æžãã鿥çã«ãŠãŒã¶ãŒãç»é¢ã®æãããäžããå¿ èŠæ§ãæžããå¯èœæ§ããããŸãã
5. ã¡ã¢ãªç®¡ç
- ã¡ã¢ãªãªãŒã¯ãé¿ããïŒç¹ã«ã·ã³ã°ã«ããŒãžã¢ããªã±ãŒã·ã§ã³ã§ã¯ãã€ãã³ããªã¹ããŒãã¿ã€ããŒãã¯ããŒãžã£ãŒãæ éã«ç®¡çãããã¿ãããããDOMèŠçŽ ããªããžã§ã¯ããã¡ã¢ãªã«æ®ãç¶ããªãããã«ããŸãã
- å¹ççãªããŒã¿åŠçïŒå€§èŠæš¡ãªããŒã¿ã»ããããã£ã³ã¯ã§åŠçããæªäœ¿çšã®ããŒã¿ãžã®åç §ãè§£æŸããäžå¿ èŠã«å€§ããªãªããžã§ã¯ããã¡ã¢ãªã«ä¿æããªãããã«ããŸãã
ãããã®å®è·µãéçºã¯ãŒã¯ãããŒã«çµ±åããããšã§ãããéããããå¿çæ§ãé«ãã ãã§ãªããã°ããŒãã«ãªãŠãŒã¶ãŒããŒã¹ã«ãšã£ãŠãããšãã«ã®ãŒå¹çãé«ããå æ¬çãªãŠã§ãã«è²¢ç®ã§ããŸãã
é»åãæèããããã©ãŒãã³ã¹ãããã¡ã€ãªã³ã°ã®ããã®ããŒã«ã𿹿³è«
çŽæ¥çãªé»å枬å®ã¯å°é£ã§ãããé»åæ¶è²»ã®å¢å ã«ã€ãªããããã©ãŒãã³ã¹ã®ããã«ããã¯ãç¹å®ãã蚺æããã®ã«åœ¹ç«ã€å ç¢ãªããŒã«ãååšããŸããããããéçºããã³ãã¹ãã®ã¯ãŒã¯ãããŒã«çµ±åããããšãéèŠã§ãã
1. ãã©ãŠã¶éçºè ããŒã«ïŒChrome, Firefox, Edge, SafariïŒ
ãããã¯ããã©ãŒãã³ã¹åæã®ããã®æåç·ã®ããŒã«ã§ãïŒ
- ããã©ãŒãã³ã¹ããã«ïŒããã¯æã匷åãªããŒã«ã§ããã»ãã·ã§ã³ãèšé²ããŠä»¥äžãèŠèŠåããŸãïŒ
- CPUã¢ã¯ãã£ããã£ïŒJavaScriptãã¬ã³ããªã³ã°ããã€ã³ããèªã¿èŸŒã¿ã§CPUãã©ãã ãå¿ãããã確èªããŸããã¹ãã€ã¯ãæç¶çãªé«äœ¿çšçãæ¢ããŸãã
- ãããã¯ãŒã¯ã¢ã¯ãã£ããã£ïŒãŠã©ãŒã¿ãŒãã©ãŒã«ãã£ãŒãã衚瀺ããŠãé ããªã¯ãšã¹ãã倧ããªãªãœãŒã¹ãéå°ãªããŒã¿è»¢éãç¹å®ããŸãã
- ã¡ã€ã³ã¹ã¬ããã¢ã¯ãã£ããã£ïŒã³ãŒã«ã¹ã¿ãã¯ãåæããŠãé«ã³ã¹ããªJavaScript颿°ãç¹å®ããŸããã¡ã€ã³ã¹ã¬ããããããã¯ããããã³ã°ã¿ã¹ã¯ããç¹å®ããŸãã
- ã¬ã³ããªã³ã°ãšã¬ã€ã¢ãŠãïŒãªãããŒïŒLayoutïŒãšåæç»ïŒPaintïŒã€ãã³ãã芳å¯ããŠãã¬ã³ããªã³ã°å¹çãçè§£ããŸãã
- ãããã¯ãŒã¯ããã«ïŒãµã€ãºãæéãããããŒãªã©ããã¹ãŠã®ãªãœãŒã¹ãªã¯ãšã¹ãã«é¢ãã詳现ãæäŸããŸããæé©åãããŠããªãã¢ã»ãããéå¹çãªãã£ãã·ã³ã°ãç¹å®ããã®ã«åœ¹ç«ã¡ãŸãã
- ã¡ã¢ãªããã«ïŒããŒãã¹ãããã·ã§ãããååŸããæéã®çµéãšãšãã«ã¡ã¢ãªå²ãåœãŠã芳å¯ããŠããªãŒã¯ãéå¹çãªã¡ã¢ãªäœ¿çšãæ€åºããŸãããããã¯éæ¥çã«é«ãCPUã¢ã¯ãã£ããã£ïŒäŸïŒã¬ããŒãžã³ã¬ã¯ã·ã§ã³ïŒã«ã€ãªããå¯èœæ§ããããŸãã
- Lighthouseç£æ»ïŒChrome DevToolsã«çµã¿èŸŒãŸããŠããïŒCLIããŒã«ãšããŠãå©çšå¯èœïŒãLighthouseã¯ããã©ãŒãã³ã¹ãã¢ã¯ã»ã·ããªãã£ããã¹ããã©ã¯ãã£ã¹ãSEOãããã°ã¬ãã·ããŠã§ãã¢ããªæ©èœã®èªåç£æ»ãæäŸããŸãããã®ããã©ãŒãã³ã¹ã¹ã³ã¢ïŒäŸïŒFCP, LCP, TBT, CLS, INPïŒã¯é»åå¹çã«çŽæ¥çžé¢ããŸããé«ãLighthouseã¹ã³ã¢ã¯ãäžè¬çã«ãšãã«ã®ãŒå¹çã®é«ãã¢ããªã±ãŒã·ã§ã³ã瀺ããŸãã
2. WebPageTest
ããŸããŸãªã°ããŒãã«ãªå Žæããããã¯ãŒã¯æ¡ä»¶ïŒäŸïŒ3Gã4Gãã±ãŒãã«ïŒãããã€ã¹ã¿ã€ãããå æ¬çãªããã©ãŒãã³ã¹ãã¹ããè¡ãããã®åŒ·åãªå€éšããŒã«ã§ãã以äžãæäŸããŸãïŒ
- 詳现ãªãŠã©ãŒã¿ãŒãã©ãŒã«ãã£ãŒããšãã£ã«ã ã¹ããªããã
- Core Web Vitalsã¡ããªã¯ã¹ã
- æé©åã®æ©äŒã
- å®éã®ã¢ãã€ã«ããã€ã¹ã§ãã¹ããå®è¡ããèœåãããã«ãããé»åé¢é£ã®ããã©ãŒãã³ã¹ãããæ£ç¢ºã«è¡šçŸã§ããŸãã
3. ãªã¢ã«ãŠãŒã¶ãŒã¢ãã¿ãªã³ã°ïŒRUMïŒãšåæã¢ãã¿ãªã³ã°
- RUMïŒGoogle AnalyticsãSpeedCurveãªã©ã®ããŒã«ãã«ã¹ã¿ã ãœãªã¥ãŒã·ã§ã³ã¯ããŠãŒã¶ãŒã®ãã©ãŠã¶ããçŽæ¥ããã©ãŒãã³ã¹ããŒã¿ãåéããŸããããã«ãããããŸããŸãªããã€ã¹ããããã¯ãŒã¯æ¡ä»¶ã§ã倿§ãªã°ããŒãã«ãªãŒãã£ãšã³ã¹ã«å¯ŸããŠã¢ããªã±ãŒã·ã§ã³ãã©ã®ããã«åäœãããã«ã€ããŠã®è²ŽéãªæŽå¯ãåŸãããŸããFCPãLCPãINPãªã©ã®ã¡ããªã¯ã¹ãããã€ã¹ã¿ã€ããå Žæãšçžé¢ãããŠãé»åæ¶è²»ãé«ãå¯èœæ§ã®ããé åãç¹å®ã§ããŸãã
- åæã¢ãã¿ãªã³ã°ïŒç®¡çãããç°å¢ïŒäŸïŒç¹å®ã®ããŒã¿ã»ã³ã¿ãŒïŒãã宿çã«ã¢ããªã±ãŒã·ã§ã³ããã¹ãããŸããå®éã®ãŠãŒã¶ãŒããŒã¿ã§ã¯ãããŸããããäžè²«ããããŒã¹ã©ã€ã³ãæäŸããæéã®çµéãšãšãã«ãªã°ã¬ãã·ã§ã³ã远跡ããã®ã«åœ¹ç«ã¡ãŸãã
4. ããŒããŠã§ã¢é»åèšïŒã©ããã¹ãïŒ
æ¥åžžã®ããã³ããšã³ãéçºã«ã¯å®çšçãªããŒã«ã§ã¯ãããŸããããå°éã®ããŒããŠã§ã¢é»åèšïŒäŸïŒMonsoon Solutionsãã¯ãŒã¢ãã¿ãŒïŒã¯ããã©ãŠã¶ãã³ããŒãOSéçºè ãããã€ã¹ã¡ãŒã«ãŒã«ãã£ãŠç®¡çãããã©ãç°å¢ã§äœ¿çšãããŸãããããã¯ãããã€ã¹å šäœãŸãã¯ç¹å®ã®ã³ã³ããŒãã³ãã®éåžžã«æ£ç¢ºãªãªã¢ã«ã¿ã€ã ã®æ¶è²»é»åããŒã¿ãæäŸããŸããããã¯äž»ã«ãå žåçãªãŠã§ãéçºã§ã¯ãªãããã©ãããã©ãŒã ã¬ãã«ã§ã®ç ç©¶ãšæ·±ãæé©åã®ããã®ãã®ã§ãã
ãããã¡ã€ãªã³ã°ã®æ¹æ³è«ïŒ
- ããŒã¹ã©ã€ã³ã確ç«ããïŒå€æŽãå ããåã«ã代衚çãªæ¡ä»¶ïŒäŸïŒäžè¬çãªããã€ã¹ãå¹³åçãªãããã¯ãŒã¯é床ïŒã§çŸåšã®ããã©ãŒãã³ã¹ã¡ããªã¯ã¹ã枬å®ããŸãã
- ãŠãŒã¶ãŒãããŒã«çŠç¹ãåœãŠãïŒããŒã ããŒãžã ãããã¹ãããªãã§ãã ãããéèŠãªãŠãŒã¶ãŒãžã£ãŒããŒïŒäŸïŒãã°ã€ã³ãæ€çŽ¢ãååè³Œå ¥ïŒããããã¡ã€ãªã³ã°ããŸãããããã¯ãã°ãã°ããè€éãªã€ã³ã¿ã©ã¯ã·ã§ã³ãšããŒã¿åŠçã䌎ããŸãã
- 倿§ãªæ¡ä»¶ãã·ãã¥ã¬ãŒãããïŒãã©ãŠã¶ã®ã¹ããããªã³ã°ãšWebPageTestã䜿çšããŠãå€ãã®ã°ããŒãã«ãŠãŒã¶ãŒã«ãšã£ãŠäžè¬çãªäœéãããã¯ãŒã¯ãšäœæ§èœããã€ã¹ãã·ãã¥ã¬ãŒãããŸãã
- ååŸ©ãšæž¬å®ïŒäžåºŠã«1ã€ã®æé©åãè¡ãããã®åœ±é¿ã枬å®ããå埩ããŸããããã«ãããå倿Žã®å¹æãåé¢ã§ããŸãã
- ãã¹ããèªååããïŒããã©ãŒãã³ã¹ç£æ»ïŒäŸïŒCI/CDã§ã®Lighthouse CLIïŒãçµ±åããŠããªã°ã¬ãã·ã§ã³ãæ©æã«æ€åºããŸãã
ãšãã«ã®ãŒå¹çã®é«ããŠã§ãã®æªæ¥ïŒæç¶å¯èœãªåé²
ãããšãã«ã®ãŒå¹çã®é«ããŠã§ããžã®éã®ãã¯ç¶ããŠããŸããæè¡ãé²åããã«ã€ããŠãæé©åã®èª²é¡ãšæ©äŒãåæ§ã«é²åããŸãã
1. ãŠã§ãç°å¢æç¶å¯èœæ§ãžã®åãçµã¿
ãæç¶å¯èœãªãŠã§ããã¶ã€ã³ãããã°ãªãŒã³ãœãããŠã§ã¢ãšã³ãžãã¢ãªã³ã°ããžã®åããåºãŸã£ãŠããŸããWeb Sustainability Guidelinesã®ãããªã€ãã·ã¢ããã¯ãç°å¢ã«åªããããžã¿ã«è£œåãæ§ç¯ããããã®å æ¬çãªãã¬ãŒã ã¯ãŒã¯ãæäŸããããã«åºçŸããŠããŸããããã«ã¯ãããã³ããšã³ãã®ããã©ãŒãã³ã¹ã ãã§ãªãããµãŒããŒã€ã³ãã©ãããŒã¿è»¢éãããã«ã¯ããžã¿ã«è£œåã®ã©ã€ããµã€ã¯ã«çµäºãŸã§ã®èæ ®äºé ãå«ãŸããŸãã
2. é²åãããŠã§ãæšæºãšAPI
çŽæ¥çãªé»åAPIã¯å¯èœæ§ãäœãã§ãããå°æ¥ã®ãŠã§ãæšæºã¯ãããã«ãã现ããªæé©åãå¯èœã«ãããããæŽç·Žãããããã©ãŒãã³ã¹ããªããã£ããå°å ¥ãããããããŸãããäŸãã°ãããã€ã¹äžã®æ©æ¢°åŠç¿ã®ããã®Web Neural Network APIã®ãããªAPIã¯ãéå¹çã«å®è£ ãããå Žåãé»åæ¶è²»ãæ éã«èæ ®ããå¿ èŠããããŸãã
3. ãã©ãŠã¶ã®é©æ°
ãã©ãŠã¶ãã³ããŒã¯ããšã³ãžã³ã®å¹çãåäžãããããã«ç¶ç¶çã«åãçµãã§ããŸããããã«ã¯ãããåªããJavaScript JITã³ã³ãã€ã©ãããæé©åãããã¬ã³ããªã³ã°ãã€ãã©ã€ã³ãããã¹ããŒããªããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ã¹ã±ãžã¥ãŒãªã³ã°ãå«ãŸããŸããéçºè ã¯ããã©ãŠã¶ç°å¢ãææ°ã®ç¶æ ã«ä¿ã¡ããã¹ããã©ã¯ãã£ã¹ã«åŸãããšã§ããããã®æ¹åãæŽ»çšã§ããŸãã
4. éçºè ã®è²¬ä»»ãšæè²
æçµçã«ããšãã«ã®ãŒå¹çãåªå ãã責任ã¯ãåã ã®éçºè ãšéçºããŒã ã«ãããŸããããã«ã¯ä»¥äžãå¿ èŠã§ãïŒ
- èªèïŒèªåã®ã³ãŒããæ¶è²»é»åã«äžãã圱é¿ãçè§£ããããšã
- æè²ïŒããã©ãŒãã³ã¹ãšæç¶å¯èœæ§ã®ããã®ãã¹ããã©ã¯ãã£ã¹ãåŠã³ãé©çšããããšã
- ããŒã«ã®çµ±åïŒãããã¡ã€ãªã³ã°ããã³ã¢ãã¿ãªã³ã°ããŒã«ãæ¥åžžã®ã¯ãŒã¯ãããŒã«çµã¿èŸŒãããšã
- ãã¶ã€ã³æèïŒåŸä»ãã§ã¯ãªããåæã®ãã¶ã€ã³æ®µéããé»åå¹çãèæ ®ããããšã
çµè«ïŒããç°å¢ã«åªãããããã¢ã¯ã»ã¹ãããããŠã§ããå®çŸãã
ãŠã§ãã¢ããªã±ãŒã·ã§ã³ã®ãšãã«ã®ãŒãããããªã³ããç¡èŠããæä»£ã¯çµãããåããããšããŠããŸããæ°åå€åã«é¢ããäžççãªæèãé«ãŸããã¢ãã€ã«ããã€ã¹ãäœååãã®äººã ã«ãšã£ãŠäž»èŠãªã€ã³ã¿ãŒããããžã®å ¥ãå£ãšãªãã«ã€ããŠããšãã«ã®ãŒå¹çã®é«ãããã³ããšã³ãäœéšãæ§ç¯ããèœåã¯ããã¯ããã£ããè¯ããã®ã§ã¯ãªããæç¶å¯èœã§å æ¬çãªãŠã§ãã®ããã®åºæ¬çãªèŠä»¶ãšãªã£ãŠããŸãã
æ¶è²»é»åãæž¬å®ããããã®çŽæ¥çãªãŠã§ãAPIã¯ãéèŠãªãã©ã€ãã·ãŒãšã»ãã¥ãªãã£ã®èæ ®äºé ã®ããã«äŸç¶ãšããŠå®çŸãå°é£ã§ãããããã³ããšã³ãéçºè ã¯æ±ºããŠç¡åã§ã¯ãããŸãããæ¢åã®ããã©ãŒãã³ã¹APIãšå ç¢ãªãããã¡ã€ãªã³ã°ããŒã«ã®ã¹ã€ãŒããæŽ»çšããããšã§ãç§ãã¡ã¯ãšãã«ã®ãŒæ¶è²»ãé§åããæ ¹æ¬çãªèŠå ãããªãã¡CPU䜿çšçããããã¯ãŒã¯ã¢ã¯ãã£ããã£ãã¬ã³ããªã³ã°è² è·ã广çã«æšæž¬ã蚺æãæé©åããããšãã§ããŸãã
ãªãŒã³ãªJavaScriptãå¹ççãªã¢ã»ããé ä¿¡ãã¹ããŒããªã¬ã³ããªã³ã°ãããŒã¯ã¢ãŒãã®ãããªæèçãªãã¶ã€ã³éžæãªã©ã®æŠç¥ãåãå ¥ããããšã§ãç§ãã¡ã®ã¢ããªã±ãŒã·ã§ã³ã¯ããéãã ãã§ãªããããæç¶å¯èœã§ãŠãŒã¶ãŒãã¬ã³ããªãŒãªè£œåã«å€ãããŸããããã¯ãããããªãŒå¯¿åœãç¯çŽããŠããé éå°ã®ãŠãŒã¶ãŒãããããå°ããªã«ãŒãã³ãããããªã³ãã«è²¢ç®ããŠããäžçåžæ°ãŸã§ããã¹ãŠã®äººã«å©çããããããŸãã
è¡åãžã®åŒã³ããã¯æç¢ºã§ãïŒæž¬å®ãéå§ããæé©åãéå§ãããŠãŒã¶ãŒã®ããã€ã¹ãšç§ãã¡ã®å°çã®äž¡æ¹ãå°éãããŠã§ããæ§ç¯ããããšã«ã³ãããããŠãã ããããŠã§ãã®æªæ¥ã¯ããããå¹ççãã€è²¬ä»»ãæã£ãŠåããããã®ç§ãã¡ã®éåçãªåªåã«ããã£ãŠããŸãã